home *** CD-ROM | disk | FTP | other *** search
/ Mac100% 1999 April / MAC100-1999-04.ISO.7z / MAC100-1999-04.ISO / オンラインソフト定点観測 / Graphics / X-TRACE67.lzh / XTRACE R67 / X-TRACE / X-TRACE.rsrc / TEXT_758_vrml_cyl.xti.txt < prev    next >
Text File  |  1999-01-31  |  1KB  |  82 lines

  1. modela    "Cylinder for VRML-MODELA bridge"
  2. {
  3.     smooth    vrml.cyl.smooth : model
  4.     {
  5.         // parts
  6.         var        BOTTOM=true;
  7.         var        SIDES=true;
  8.         var        TOP=true;
  9.         if    (vrml.cyl.parts%2=0)
  10.         {
  11.             BOTTOM=false;
  12.         }
  13.         if    (int (vrml.cyl.parts/2)%2=0)
  14.         {
  15.             SIDES=false;
  16.         }
  17.         if    (int (vrml.cyl.parts/4)%2=0)
  18.         {
  19.             TOP=false;
  20.         }
  21.  
  22.         // MaterialBinding
  23.         var        nmater=vrml.mater.num;
  24.         if (!(vrml.matebnd.value=vrml.enum.PER_PART
  25.             | vrml.matebnd.value=vrml.enum.PER_PART_INDEXED))
  26.         {
  27.             nmater=1;
  28.         }
  29.  
  30.         var        t1, x1,z1;
  31.         var        t2, x2,z2;
  32.  
  33.         sim        vrml.cyl.radius,vrml.cyl.height/2,vrml.cyl.radius;
  34.         boundary    sphere    0,0,0, sqrt (3)
  35.         {
  36.             // poly-cylinder
  37.             var        i=0;
  38.             while    (i<vrml.cyl.pn)
  39.             {
  40.                 t1=2*PI*i/vrml.cyl.pn;
  41.                 t2=2*PI*(i + 1)/vrml.cyl.pn;
  42.                 x1=cos (t1);
  43.                 z1=sin (t1);
  44.                 x2=cos (t2);
  45.                 z2=sin (t2);
  46.                 if    (SIDES)
  47.                 {
  48.                     attr    vrml_attr_#(0%nmater);
  49.                     poly    "SIDES"
  50.                     {
  51.                         pt    x1,1,z1;
  52.                         pt    x1,-1,z1;
  53.                         pt    x2,-1,z2;
  54.                         pt    x2,1,z2;
  55.                     }
  56.                 }
  57.                 if    (TOP)
  58.                 {
  59.                     attr    vrml_attr_#(1%nmater);
  60.                     poly    "TOP"
  61.                     {
  62.                         pt    0,1,0;
  63.                         pt    x1,1,z1;
  64.                         pt    x2,1,z2;
  65.                     }
  66.                 }
  67.                 if    (BOTTOM)
  68.                 {
  69.                     attr    vrml_attr_#(2%nmater);
  70.                     poly    "BOTTOM"
  71.                     {
  72.                         pt    0,-1,0;
  73.                         pt    x1,-1,z1;
  74.                         pt    x2,-1,z2;
  75.                     }
  76.                 }
  77.                 i=i + 1;
  78.             }
  79.         }
  80.     }
  81. }
  82.